update for working :( - separation coding failed use poor implementation