basic functionality without loading effects