Has almost all functionality