Trying to figure out an interfaces for this