updates, needs improvements