active model implementation