todo: added more desired features