improve checkout and AOP