Refactor method_missing into dynamic getters and setters