multiple updates in functionality and code cleanup