Make AbstractButton the entry point