lots of problems but works for the most part