improvements and splitting into classes