add button, position, states