Complete all features, but has bugs