code needs cleanup