add some basic opmtimization methods