trying to optimize further