add an nterface for class
remove metadata and dynamic class, put everything in data