code written for handling all basics components - need test