optimized

some of these functions don't really need to be encapsulated so we can just directly include them in callers