Trying to find nice structure to this thing