works needs more style, but worlks