just added initial architecture.
refactored.