Created by: chankruze
In this PR i tried to implement both enum (for cleaner code) and inheritance. Review and merge it.