updated for improvements