added enum type and interface