made all methods nonstatic for future overiding