Compliance with Active Model API