! try to make first version as simple as possible as I want