fix database to support bidirectional
add Payment