suggest using abstract class for eliminating switch-case statements