moved include calls from constructors to end of prototype definitions to improve efficiency