abstracted class from module