Something kind of works, dynamic attrs framework