shortened and split out methods as appropriate