Continued work, working for 90% with single error, implemented factor return