refactor schaldo, and make initializer