Some proposal about the framework build factory and supported operations - I am not satisfied with this design, unfortunately java doesn't support nested enums, so will need to handle this somehow.