add base main mechanic