some general fixes
experiments to fix enum issue on android build
fixed enum issue by using a custom class to replace enum