additional features implemented