Try to implement some sort of cache