introducing classes for code interface