make class names more descriptive
restructure and segregate