feature/baseresource

added new functionality and revised existing functions of `baseresource`.

as previously noted in my old PR, the changes to the other resource classes are to make sure the build passes. 
if this PR succeeds, the other resource classes will be PR'd.