associations and user functions