updated structure. code temporarily broken