easier to custom-build mechanisms