further apptimization