Big update. Many changes. Still in development