Backend completed. UI still not good though