Added interfaces everywhere! We need moarrrr