split implementation in classes