remember to initialize objects before using it!