lets try a better method