TODO: Fix all code