unfinished, started basic structure implementation