new logic implement