Improved initialize method

  - It should still be refactored