separated calculation & getters