added enums, interface, cunstructors, setters and getters