moved has_member in separate file