functional project, but needs a lot of performance update