created interfaces and component structure (unfinished, not working yet)