Refactored resource constructors to accept only data hash