setup via bidirectional attributes