added enums for clarity