First reworked version with commands and lib