terse up some logic, use underscored functions for consistency