Refactor and improvment Button arquhitecture