Implementing all feactures from select