Index: src/main/java/edu/gjoko/schedlr/config/AppSecurityConfig.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/config/AppSecurityConfig.java	(revision cc52b098579f2f0c4586ca94632d01dd6e8aaada)
+++ src/main/java/edu/gjoko/schedlr/config/AppSecurityConfig.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -45,15 +45,4 @@
         http.csrf()
                 .disable()
-                .authorizeRequests()
-                .antMatchers("/login").permitAll()
-                .antMatchers("/register_customer").permitAll()
-                .antMatchers("/register_business").permitAll()
-                .antMatchers("/homepage").permitAll()
-                .antMatchers("/css/**").permitAll()
-                .antMatchers("/js/**").permitAll()
-                .antMatchers("/anonymous*").anonymous()
-                .anyRequest()
-                .fullyAuthenticated()
-                .and()
                 .httpBasic()
                 .authenticationEntryPoint(new AppAuthenticationEntryPoint())
@@ -64,5 +53,17 @@
                 .loginProcessingUrl("/login")
                 .successHandler(authenticationSuccessHandler)
-                .defaultSuccessUrl("/homepage");
+                .defaultSuccessUrl("/homepage")
+                .and()
+                .authorizeRequests()
+                .antMatchers("/login").permitAll()
+                .antMatchers("/register_customer").permitAll()
+                .antMatchers("/register_business").permitAll()
+                .antMatchers("/api/nomenclatures/*").permitAll()
+                .antMatchers("/homepage").permitAll()
+                .antMatchers("/css/**").permitAll()
+                .antMatchers("/js/**").permitAll()
+                .antMatchers("/anonymous*").anonymous()
+                .anyRequest()
+                .fullyAuthenticated();
     }
 }
Index: src/main/java/edu/gjoko/schedlr/controllers/HomePageController.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/controllers/HomePageController.java	(revision cc52b098579f2f0c4586ca94632d01dd6e8aaada)
+++ src/main/java/edu/gjoko/schedlr/controllers/HomePageController.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -1,10 +1,10 @@
 package edu.gjoko.schedlr.controllers;
 
-import edu.gjoko.schedlr.entity.Search;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.PostMapping;
+
+import java.security.Principal;
 
 @Controller
@@ -12,12 +12,11 @@
 
     @GetMapping(name = "/homepage")
-    public String getHomePageTemplate(Model model, @ModelAttribute("search")Search search ) {
-        model.addAttribute("search", search);
+    public String getHomePageTemplate(Model model, Principal principal) {
+        System.out.println(principal);
         return "homepage";
     }
 
     @PostMapping(name = "/homepage")
-    public String postHomePageTemplate(Model model, @ModelAttribute("search")Search search) {
-        model.addAttribute("search", search);
+    public String postHomePageTemplate(Model model) {
         return "homepage";
     }
Index: src/main/java/edu/gjoko/schedlr/controllers/LoginController.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/controllers/LoginController.java	(revision cc52b098579f2f0c4586ca94632d01dd6e8aaada)
+++ src/main/java/edu/gjoko/schedlr/controllers/LoginController.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -12,6 +12,5 @@
 
     @GetMapping(path = "/login")
-    public String getMapping(Model model) {
-        model.addAttribute("stakeholder", new Stakeholder());
+    public String getMapping(@ModelAttribute Stakeholder customer, Model model) {
         return "login";
     }
Index: src/main/java/edu/gjoko/schedlr/controllers/RegisterController.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/controllers/RegisterController.java	(revision cc52b098579f2f0c4586ca94632d01dd6e8aaada)
+++ src/main/java/edu/gjoko/schedlr/controllers/RegisterController.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -29,6 +29,5 @@
     public String registerCustomer(@ModelAttribute Stakeholder customer, Model model) {
         Stakeholder user = stakeholderService.saveStakeholder(customer);
-        model.addAttribute("user", user);
-        return "redirect:homepage";
+        return "redirect:login";
     }
 
Index: src/main/java/edu/gjoko/schedlr/controllers/rest/EventsController.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/controllers/rest/EventsController.java	(revision cc52b098579f2f0c4586ca94632d01dd6e8aaada)
+++ 	(revision )
@@ -1,16 +1,0 @@
-package edu.gjoko.schedlr.controllers.rest;
-
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.time.LocalDateTime;
-
-@RestController
-public class EventsController {
-
-    @RequestMapping(value = "/events", method = RequestMethod.GET)
-    public String getEvents() {
-        return LocalDateTime.now().toString();
-    }
-}
Index: src/main/java/edu/gjoko/schedlr/controllers/rest/NomenclaturesController.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/controllers/rest/NomenclaturesController.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
+++ src/main/java/edu/gjoko/schedlr/controllers/rest/NomenclaturesController.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -0,0 +1,23 @@
+package edu.gjoko.schedlr.controllers.rest;
+
+import edu.gjoko.schedlr.entity.BusinessType;
+import edu.gjoko.schedlr.repositories.BusinessTypeRepository;
+import edu.gjoko.schedlr.services.NomenclaturesService;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("api/nomenclatures")
+@AllArgsConstructor
+public class NomenclaturesController {
+
+    private final NomenclaturesService nomenclaturesService;
+    @GetMapping( "/businessTypes")
+    public List<BusinessType> getBusinessTypes() {
+        return nomenclaturesService.getBusinessTypes();
+    }
+}
Index: src/main/java/edu/gjoko/schedlr/entity/Business.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/entity/Business.java	(revision cc52b098579f2f0c4586ca94632d01dd6e8aaada)
+++ src/main/java/edu/gjoko/schedlr/entity/Business.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -1,4 +1,5 @@
 package edu.gjoko.schedlr.entity;
 
+import com.fasterxml.jackson.annotation.JsonManagedReference;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -25,6 +26,6 @@
     private String name;
 
-    @Column(name = "business_type")
-    @Enumerated(EnumType.STRING)
+    @OneToOne
+    @JoinColumn(name = "business_type_id", referencedColumnName = "id")
     private BusinessType businessType;
 
@@ -39,4 +40,8 @@
     private Stakeholder owner;
 
+    @OneToMany(mappedBy = "business")
+    @JsonManagedReference
+    private List<Service> services;
+
     @Column(name = "created")
     private LocalDateTime created;
@@ -45,5 +50,4 @@
     private LocalDateTime modified;
 
-    @OneToMany(mappedBy = "business")
-    private List<Service> services;
+
 }
Index: src/main/java/edu/gjoko/schedlr/entity/BusinessType.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/entity/BusinessType.java	(revision cc52b098579f2f0c4586ca94632d01dd6e8aaada)
+++ src/main/java/edu/gjoko/schedlr/entity/BusinessType.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -1,10 +1,49 @@
 package edu.gjoko.schedlr.entity;
 
-public enum BusinessType {
-    TAILOR,
-    NAIL_SALON,
-    MASSAGE_PARLOR,
-    MAKEUP_STUDIO,
-    HAIRDRESSER,
-    BARBER
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonManagedReference;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.springframework.data.annotation.CreatedDate;
+import org.springframework.data.annotation.LastModifiedDate;
+import org.springframework.data.jpa.domain.support.AuditingEntityListener;
+
+import javax.persistence.*;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Entity
+@EntityListeners(AuditingEntityListener.class)
+@Table(name = "business_type")
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class BusinessType {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE)
+    @JsonProperty("value")
+    private Long id;
+
+    @Column(name = "name")
+    @JsonProperty("text")
+    private String name;
+
+    @OneToMany(mappedBy="businessType")
+    @JsonManagedReference
+    private List<ServiceType> serviceTypes;
+
+    @Column(name = "created")
+    @CreatedDate
+    @JsonIgnore
+    private LocalDateTime created;
+
+    @Column(name = "modified")
+    @LastModifiedDate
+    @JsonIgnore
+    private LocalDateTime modified;
 }
Index: src/main/java/edu/gjoko/schedlr/entity/Search.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/entity/Search.java	(revision cc52b098579f2f0c4586ca94632d01dd6e8aaada)
+++ 	(revision )
@@ -1,20 +1,0 @@
-package edu.gjoko.schedlr.entity;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.io.Serializable;
-import java.util.Date;
-
-@Getter
-@Setter
-@NoArgsConstructor
-@AllArgsConstructor
-public class Search implements Serializable {
-
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    private Date date;
-}
Index: src/main/java/edu/gjoko/schedlr/entity/Service.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/entity/Service.java	(revision cc52b098579f2f0c4586ca94632d01dd6e8aaada)
+++ src/main/java/edu/gjoko/schedlr/entity/Service.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -1,4 +1,5 @@
 package edu.gjoko.schedlr.entity;
 
+import com.fasterxml.jackson.annotation.JsonBackReference;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -35,6 +36,11 @@
     private Float price;
 
+    @OneToOne
+    @JoinColumn(name = "service_type_id", referencedColumnName = "id")
+    private ServiceType serviceType;
+
     @ManyToOne
-    @JoinColumn(name = "business_id")
+    @JoinColumn(name="business_fk")
+    @JsonBackReference
     private Business business;
 
Index: src/main/java/edu/gjoko/schedlr/entity/ServiceType.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/entity/ServiceType.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
+++ src/main/java/edu/gjoko/schedlr/entity/ServiceType.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -0,0 +1,47 @@
+package edu.gjoko.schedlr.entity;
+
+import com.fasterxml.jackson.annotation.JsonBackReference;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.springframework.data.annotation.CreatedDate;
+import org.springframework.data.annotation.LastModifiedDate;
+import org.springframework.data.jpa.domain.support.AuditingEntityListener;
+
+import javax.persistence.*;
+import java.time.LocalDateTime;
+
+@Entity
+@EntityListeners(AuditingEntityListener.class)
+@Table(name = "service_type")
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class ServiceType {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE)
+    private Long id;
+
+    @Column(name = "name")
+    private String name;
+
+
+    @ManyToOne
+    @JoinColumn(name = "business_type_id")
+    @JsonBackReference
+    private BusinessType businessType;
+
+    @Column(name = "created")
+    @CreatedDate
+    @JsonIgnore
+    private LocalDateTime created;
+
+    @Column(name = "modified")
+    @LastModifiedDate
+    @JsonIgnore
+    private LocalDateTime modified;
+}
Index: src/main/java/edu/gjoko/schedlr/repositories/BusinessTypeRepository.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/repositories/BusinessTypeRepository.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
+++ src/main/java/edu/gjoko/schedlr/repositories/BusinessTypeRepository.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -0,0 +1,10 @@
+package edu.gjoko.schedlr.repositories;
+
+import edu.gjoko.schedlr.entity.BusinessType;
+import edu.gjoko.schedlr.entity.Stakeholder;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface BusinessTypeRepository extends JpaRepository<BusinessType, Long> {
+}
Index: src/main/java/edu/gjoko/schedlr/repositories/ServiceTypeRepository.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/repositories/ServiceTypeRepository.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
+++ src/main/java/edu/gjoko/schedlr/repositories/ServiceTypeRepository.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -0,0 +1,10 @@
+package edu.gjoko.schedlr.repositories;
+
+import edu.gjoko.schedlr.entity.BusinessType;
+import edu.gjoko.schedlr.entity.ServiceType;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ServiceTypeRepository extends JpaRepository<ServiceType, Long> {
+}
Index: src/main/java/edu/gjoko/schedlr/services/NomenclaturesService.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/services/NomenclaturesService.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
+++ src/main/java/edu/gjoko/schedlr/services/NomenclaturesService.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -0,0 +1,22 @@
+package edu.gjoko.schedlr.services;
+
+import edu.gjoko.schedlr.entity.BusinessType;
+import edu.gjoko.schedlr.repositories.BusinessTypeRepository;
+import edu.gjoko.schedlr.repositories.ServiceTypeRepository;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+public class NomenclaturesService {
+
+    private final BusinessTypeRepository businessTypeRepository;
+
+    private final ServiceTypeRepository serviceTypeRepository;
+
+    public List<BusinessType> getBusinessTypes () {
+        return businessTypeRepository.findAll();
+    }
+}
Index: src/main/java/edu/gjoko/schedlr/services/StakeholderService.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/services/StakeholderService.java	(revision cc52b098579f2f0c4586ca94632d01dd6e8aaada)
+++ src/main/java/edu/gjoko/schedlr/services/StakeholderService.java	(revision 2b0a4db95e071b47a10460f6bb4d73d43885fb9c)
@@ -4,4 +4,5 @@
 import edu.gjoko.schedlr.entity.StakeholderType;
 import edu.gjoko.schedlr.repositories.StakeholderRepository;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 
@@ -10,10 +11,14 @@
 
     private StakeholderRepository stakeholderRepository;
+    private BCryptPasswordEncoder bCryptPasswordEncoder;
 
-    public StakeholderService(StakeholderRepository stakeholderRepository) {
+    public StakeholderService(StakeholderRepository stakeholderRepository,
+                              BCryptPasswordEncoder bCryptPasswordEncoder) {
         this.stakeholderRepository = stakeholderRepository;
+        this.bCryptPasswordEncoder = bCryptPasswordEncoder;
     }
 
     public Stakeholder saveStakeholder(Stakeholder stakeholder) {
+        stakeholder.setPassword(bCryptPasswordEncoder.encode(stakeholder.getPassword()));
         stakeholder.setStakeholderType(StakeholderType.CUSTOMER);
         return stakeholderRepository.save(stakeholder);
