updated for better usability