refactor a bit
min versions
like buttons