added support for more settings
add save/load state func + load state on start